This application claims the benefit of Korean Application Nos. 99-15098 and 99-26050 filed Apr. 27 and Jun. 30, 1999, respectively, in the Korean Patent Office, the disclosures of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to editing and/or reproducing of packet-structured data, and more particularly, to a method of temporary deletion, search, restoration, and permanent deletion of a stream object and a recording medium for storing additional information for restoration of the stream object divided by temporary deletion.
2. Description of the Related Art
In general, content is formed by a stream object (SOB), and an SOB is formed by a plurality of predetermined stream object units (SOBUs) and managed in each SOBU unit. At this time, the stream object can be, for example, data which are recorded while a user records something from the beginning to the end. More particularly, an episode of a miniseries or a film can be recorded in one stream object. Since a program can be used instead of content, the word xe2x80x9cprogramxe2x80x9d will be used for explanation, hereinafter.
FIG. 1 illustrates an example of the relationship between data and search information used in reading wanted data in an already-recorded stream object. When a user records a program, just one program can be recognized to the user""s eyes, but a cell, which provides a meaningful search tool to the user, and stream object information (SOBI), which links information in a cell to actual data, exist internally.
Particularly as for a stream object, in order to improve the physical properties of recording media and the performance and/or management-easiness and efficiency of reproducing/editing devices, data are grouped in a predetermined unit (stream object unit, SOBU) for management, and information used in accessing an SOBU is stored in a mapping list (MAPL) of SOBI. The SOBU number begins from xe2x80x9c1xe2x80x9d and the MAPL can have a plurality of items. These items have information of increment application packet arrival time (IAPAT), which represents the time difference between each arrival time of first packets of two SOBUs.
In order to randomly access a program recorded in a storage device, search information on a program to be accessed is separately prepared and used, in general. As search information, information on data location in a program, program reproducing time, and program recording time are usually used. When a recorded program is a film, characteristic scenes can be used as search information. Here, a program recording time will be used as an example of search information.
Search information can have diverse formats and, generally data are grouped in a big bulk as a unit of a searching object in order to reduce the volume of search information and enable fast search. Such bulk-grouping is usually done in a layered structure. FIG. 1 illustrates an example of a three-layered structure.
When search information is made in the form of a layered structure, information on an upper layer includes information on a normal immediately-lower layer. A cell exist as an upper layer in search information which is included in a program, a stream object exists below the cell, and stream object units exist below the stream object. Each layer of search information can have diverse relationships and, here, the following is assumed.
A program has one or more cells. A cell has one stream object. A stream object has one or more stream object units. A stream object unit has one or more items of data.
FIG. 1 shows a case where Program_org is formed with Cell_org; Cell_org is formed with an SOB; the SOB is formed with SOBU1, SOBU2, and SOBU3, and each SOBU is formed with data. That is, Program_org has an information structure storing a cell, the cell has an information structure storing SOBs, and each SOB has an MAPL, the information structure storing SOBUs.
In addition, in order to show the range of a stream object which search information manages, the first data arrival time of a cell (SC_S_APAT) and the last data arrival time of the cell (SC_E_APAT) are included in cell information, and the first data arrival time of a stream object (SOB_S_APAT) and the last data arrival time of the stream object (SOB_E_APAT) are included in stream object information.
A temporary erase (TE) flag represents that the stream object is temporarily deleted. Here, temporary deletion means that after a user deletes all or some parts of a program, a chance to cancel the deletion is given to the user. Unlike this temporary erase, permanent deletion means a deletion which does not provide an opportunity for canceling the deletion.
Each item of MAPL are presented by an incremental AP arrival time which means the incremental packet arrival time of each corresponding SOBU. Here, AP is an abbreviated form of application packet, and means packet-structured data. IAPAT, the incremental packet arrival time of an SOBU is defined as follows.
Search information expressed in time units has respective precision degrees depending on application fields. As for a moving picture experts group-2 (MPEG-2) system, time is counted and used in units of 27 MHz. In FIG. 1, data is expressed in units of 0.1. In order to reduce the length of the search information MAPL, an SOB is assumed to express time in units of 1.0. When this is applied to a 48-bit register for expressing time, equal to or greater than point b18, shown in FIG. 2, means an integer part and less than point b18 indicates a decimal fraction. The location of b18, immediately upper decimal fractions, will be expressed as MTU_SHIFT.
In addition, each item of MAPL in FIG. 1 has values of 3, 1, and 1, respectively, which are based on the following definition of MAPL. As a method for determining IAPAT of each SOBU, different methods are used according to the location of an SOBU in an SOB, that is, whether or not an SOBU is the last SOBU in an SOB.
For example, when M SOBUs exist in one SOB, the accumulated value of IAPATs from the first to the i-th SOBU for i-th SOBU(i) except the last SOBU must not be greater than the first AP arrival time of SOBU(i+1) by more than 1. IAPAT is assumed to be an integer expressed in units of 1.0, and the initial value of accumulation is assumed to be xe2x80x9c0xe2x80x9d. This is expressed in the following equation 1.
SOBUxe2x80x94Sxe2x80x94APAT(i+1)xe2x89xa6SUMxe2x80x94IAPAT(i) less than SOBUxe2x80x94Sxe2x80x94APAT(i+1)+1 . . . xe2x80x83xe2x80x83(1)
Here, SUM_IAPAT(i) represents the accumulated value of all preceding SOBU""s IAPAT values, including the corresponding SOBU, that is, SOBU#i, and SOBU_S_APAT(i+1) represents the arrival time of the first AP of SOBU(i+1).
When M SOBUs exist, the accumulated value of IAPATs from the first to the M-th for SOBU(M), the last SOBU, must be greater than the arrival time of the last AP of SOBU(M) and must not be greater than that by 1. IAPAT is assumed to be an integer expressed in units of 1.0, and the initial value of accumulation starts from xe2x80x9c0xe2x80x9d.
SOBUxe2x80x94Exe2x80x94APAT(M) less than SUMxe2x80x94IAPAT(M)xe2x89xa6SOBUxe2x80x94Exe2x80x94APAT(M)+1 . . . xe2x80x83xe2x80x83(2)
Here, SUM_IAPAT(M) represents the accumulated value of all preceding IAPATs, including the corresponding SOBU, that is, SOBU#M, and SOBU_E_APAT(M) represents the arrival time of the last AP of SOBU(M).
Referring to FIG. 3, the concepts of the equations 1 and 2 will now be explained in detail.
In FIG. 3, as for SOBU1, the result of accumulation of SOBU1""s IAPAT, that is, the value of SOBU1, must be equal to or greater than the arrival time of the first AP of SOBU2, and must not be greater than that by 1. That is, the result of accumulation must be equal to or greater than 1.9, and must be an integer less than 2.9, and therefore, the result must be 2. Accordingly, the IAPAT of SOBU1 is 2.
As for SOBU2, the result of accumulation of IAPATs of SOBU1 and SOBU2 must be the arrival time of the first AP of SOBU3, and must not be greater than that by 1. That is, the result of accumulation must be equal to or greater than 5.5, and must be an integer less than 6.5, and therefore, the result must be 6. Since the IAPAT of SOBU1 is 2, The IAPAT of SOBU 2 is 4.
In this way, IAPATs of the first SOBU and an SOBU located in the middle can be obtained, and because a case in FIG. 4A shows a boundary condition, it needs to be more carefully handled. When the IAPAT of SOBU2 of FIG. 4A is calculated and when the arrival time of the first AP of SOBU3 is the integer 5.0, the result of accumulation to the IAPAT of SOBU2 is not 6 but 5.
In the meantime, as for SOBU6 in FIG. 3, the result of accumulation of the integer part of the arrival time of the first AP of the SOBU6 and the IAPAT to SOBU6 must be greater than the arrival time of the last AP of SOBU6, and must not be greater than that by 1. That is, the result of accumulation must be greater than 10.8, and must be an integer less than or equal to 11.8, and therefore, it must be 11. Since the result of the accumulation of IAPAT to SOBU5 is 10, the IAPAT of SOBU6 is 1.
In this way, the IAPAT of the last SOBU in an SOB can be obtained, and because a case in FIG. 4B shows a boundary condition, it needs to be more carefully handled. When the IAPAT of SOBU(6) of FIG. 4B is calculated and when the arrival time of the last AP of SOBU(6) is an integer value of 11.0, the result of accumulation to the IAPAT of SOBU(6) is not 11 but 12.
In the meantime, when a program is temporarily deleted, this deletion is indicated by a temporary erase (TE) flag, which is promised and admitted in general. Therefore, when a part of a program is temporarily deleted, a stream object is divided into a temporarily deleted stream object and an undeleted stream object, and the TE flag is set in the temporarily deleted stream object. This is for restoring the deleted part later by changing only search information which links a user and data, without actually deleting any data.
However, a method of generating search information in dividing a stream object has not been disclosed. Also, the TE flag only indicates that the temporarily deleted part has been temporarily deleted, which inevitably makes the TE flag reset in later restoration. Reading between those cells may be performed discontinuously because of the reset process.
If a restoration method having a process for resetting the TE flag is used, the restored program will have two or more cells. This means that the original program of FIG. 1 is not restored fully because the operation between cells is not defined, though the temporarily deleted part is restored after the temporary deletion. Since from the standpoint of a user, a restoration after temporary deletion means restoration to the original state, a method of fully restoring a stream object divided due to temporary deletion becomes required.
To solve the above problems, it is an object of the present invention to provide a method of temporary deletion, using search information for restoration of an original state, in a packet-structured stream object.
It is another object to provide a method of high-speed searching, using search information, when a plurality of divided stream objects exist.
It is another object to provide a method of full restoration of stream objects which were split into a plurality of fragments during temporary deletion.
It is another object to provide a method of updating a mapping lists of stream objects, each mapping list corresponding to each boundary portion of each stream object divided by temporary deletion.
It is another object to provide a method of updating mapping lists of stream objects, each mapping list corresponding to each boundary portion of each stream object, during the restoration of the stream objects fragmented by edition to an original state.
It is another object to provide a method of permanently deleting desired parts of a stream object.
It is another object to provide a recording medium for storing additional information for restoration of stream objects which were split into a plurality of fragments during temporary deletion.
To accomplish the above and other object of the present invention, there is provided a method of temporarily deleting part of a stream object recorded in a recording medium storing search information for searching a plurality of stream objects, each of which has additional information on an arrival time of packet data and link information for linking the search information to the stream objects, the method comprising: updating the search information and the link information for one of the stream objects generated corresponding to a range to be temporarily deleted and storing first data of the additional information for indicating temporary deletion in the stream object corresponding to the temporary deletion range and second data of the additional information for indicating that the stream object including the first data additional information and a preceding one of the stream objects were one contiguous stream object before temporary deletion.
To accomplish another object of the present invention, there is also provided a method of searching a plurality of stream objects stored in a recording medium storing search information for searching a plurality of stream objects, each of which has additional information on an arrival time of packet data, and link information for linking the search information to the stream objects, the method comprising: setting an arrival time of a location a user wants to search, and setting an integer part of the arrival time of a first packet of one of the stream objects included in the location, as an initial value of an accumulated value; generating the accumulated value by accumulating an incremental packet arrival time of the one stream object to the initial value; and repeatedly performing the generating of the accumulated value until the arrival time set for the location that the user wants to search is less than or equal to the accumulated value.
To accomplish the above object of the present invention, there is provided a method of restoring stream objects fragmented by editing in a recording medium storing search information for searching a plurality of stream objects, each of which has additional information on an arrival time of packet data, and link information for linking the search information to the stream objects, the method comprising: updating the search information and the link information to restore a plurality of stream objects generated corresponding to an editing range, to an original stream object and nullifying first data of the additional information for indicating that the corresponding stream object was edited, and second data of the additional information for indicating that the edited stream object and a preceding one of stream objects were one contiguous stream object before editing.
To accomplish the above object of the present invention, there is provided a method of updating mapping list information for stream object units corresponding to boundary of each stream object divided by temporary deletion, in a recording medium storing search information for searching a plurality of stream objects, each of which has additional information on an arrival time of packet data, and link information for linking the search information to the stream objects, the method comprising: updating an incremental packet arrival time related to a last stream object unit of a preceding one of the stream objects on the boundary of each stream object divided by the temporary deletion; and updating an incremental packet arrival time related to a first stream object unit of a following one of the stream objects on the boundary of each stream object divided by the temporary deletion.
To accomplish the above object of the present invention, there is provided a method of updating mapping list information for a stream object unit corresponding to a boundary part of each stream object when restoring stream objects fragmented by editing in a recording medium storing search information for searching a plurality of stream objects, each of which has additional information on an arrival time of packet data, and link information for linking the search information to the stream objects, the method updating the mapping list information comprising: updating an incremental packet arrival time related to a last stream object unit of a preceding stream object on the boundary of each stream object being integrated when ones of the stream objects are integrated; and updating an incremental packet arrival time related to a first stream object unit of a following stream object on the boundary of each stream object being integrated when the ones of the stream objects are integrated.
To accomplish the above object of the present invention, there is provided a method of permanently deleting a number of stream objects in a recording medium storing search information for searching a plurality of stream objects, each of which has additional information on an arrival time of packet data, and link information for linking the search information to the stream objects, the method comprising: updating the search information for one of the plurality of stream objects corresponding to a range to be permanently deleted; and updating the link information, and updating mapping list information for stream object units corresponding to a boundary of the plurality of stream objects which are not permanently deleted.
To accomplish the above object of the present invention, there is provided a recording medium comprising: search information for searching a plurality of stream objects, each of which has additional information on an arrival time of packet data, and link information for linking the search information the stream objects; first additional information indicating that a temporary deletion was performed in one of the stream objects corresponding to a temporary deletion range; and second additional information indicating that the stream object including the first additional information and a preceding one of the stream objects were one contiguous stream object before the temporary deletion.